Don't pass NULL to strncpy. (#359537, patch by Carlos Garcia Campos)
authorMatthias Clasen <mclasen@redhat.com>
Wed, 15 Nov 2006 18:54:43 +0000 (18:54 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 15 Nov 2006 18:54:43 +0000 (18:54 +0000)
2006-11-15  Matthias Clasen  <mclasen@redhat.com>

* modules/printbackends/cups/gtkprintbackendcups.c (cups_printer_get_options):
Don't pass NULL to strncpy.  (#359537, patch by  Carlos Garcia Campos)

ChangeLog
modules/printbackends/cups/gtkprintbackendcups.c

index 4c047cab4aa96d9694058ad52d0456b001881deb..5c5ccd61a8e99935a647c56190648be1542d4082 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-11-15  Matthias Clasen  <mclasen@redhat.com>
+
+       * modules/printbackends/cups/gtkprintbackendcups.c (cups_printer_get_options): 
+       Don't pass NULL to strncpy.  (#359537, patch by  Carlos Garcia Campos)
+
 2006-11-15  Michael Natterer  <mitch@imendio.com>
 
        * gtk/gtkrange.[ch]: added properties "fill-level",
index 809733d39f522a8da6dce3f328fe9a7086f9f3d6..e40c8a75ec7b824d410dfe97c7e58797ede53532 100644 (file)
@@ -2196,14 +2196,27 @@ cups_printer_get_options (GtkPrinter           *printer,
     {
       GtkPaperSize *paper_size;
       ppd_option_t *option;
+      const gchar  *ppd_name;
 
       ppdMarkDefaults (ppd_file);
 
       paper_size = gtk_page_setup_get_paper_size (page_setup);
 
       option = ppdFindOption (ppd_file, "PageSize");
-      strncpy (option->defchoice, gtk_paper_size_get_ppd_name (paper_size),
-              PPD_MAX_NAME);
+      ppd_name = gtk_paper_size_get_ppd_name (paper_size);
+      
+      if (ppd_name)
+       strncpy (option->defchoice, ppd_name, PPD_MAX_NAME);
+      else
+        {
+          gchar *custom_name;
+
+         custom_name = g_strdup_printf (_("Custom.%2fx%.2f"),
+                                        gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS),
+                                        gtk_paper_size_get_height (paper_size, GTK_UNIT_POINTS));
+          strncpy (option->defchoice, custom_name, PPD_MAX_NAME);
+          g_free (custom_name);
+        }
 
       for (i = 0; i < ppd_file->num_groups; i++)
         handle_group (set, ppd_file, &ppd_file->groups[i], &ppd_file->groups[i], settings);